import request from '@/config/axios'

// 周计划 VO
export interface WeeklyPlanVO {
  id: number // 编号
  classId: number // 班级ID
  topicName: string // 主题活动名称
  weekYear: string //哪一年
  weekNumber: string // 第几周
  weekDate: Date // 周日期 yyyyMMdd 00:00:00
  startDate: Date // 开始时间
  endDate: Date // 结束时间
  workFocus: string // 工作重点
  parentCoop: string // 家长配合
  happyLife: string // 快乐生活
  sort: number // 排序
  status: number // 状态
  weeklyPlanDailys: WeeklyPlanDailyVO[] // 周计划每日内容列表
}

// 周计划每日内容 VO
export interface WeeklyPlanDailyVO {
  id: number // 编号
  planId: number // 周计划ID
  dayOfWeek: string // 第几天
  happyLearningTeach: string // 内容
  happyLearningGame: string // 内容
  happyGameSport: string // 内容
  happyGameGame: string // 内容
  sort: number // 排序
  status: number // 状态
}

export interface WeeklyPlanFeedbackVO {
  /*编号 */
  id: number

  /*每日内容ID */
  dailyId: number

  /*周计划类型 */
  weeklyType: string

  /*反馈类型 */
  feedbackType: string

  /*反馈标题 */
  title: string

  /*反馈详细内容 */
  description: string

  /*附件 */
  fileUrls: Record<string, unknown>[]

  /*排序 */
  sort: number

  /*状态 */
  status: number

  /*创建时间 */
  createTime: Record<string, unknown>
}

// 周计划 API
export const WeeklyPlanApi = {
  // 查询周计划分页
  getWeeklyPlanPage: async (params: any) => {
    return await request.get({ url: `/school/weekly-plan/page`, params })
  },

  // 查询周计划详情
  getWeeklyPlan: async (id: number) => {
    return await request.get({ url: `/school/weekly-plan/get?id=` + id })
  },

  // 新增周计划
  createWeeklyPlan: async (data: WeeklyPlanVO) => {
    return await request.post({ url: `/school/weekly-plan/create`, data })
  },

  // 修改周计划
  updateWeeklyPlan: async (data: WeeklyPlanVO) => {
    return await request.put({ url: `/school/weekly-plan/update`, data })
  },

  // 删除周计划
  deleteWeeklyPlan: async (id: number) => {
    return await request.delete({ url: `/school/weekly-plan/delete?id=` + id })
  },

  // 导出周计划 Excel
  exportWeeklyPlan: async (params) => {
    return await request.download({ url: `/school/weekly-plan/export-excel`, params })
  },

  // ==================== 子表（周计划每日内容） ====================
  /**
   * 获得每年的周日期列表
   * @param {string} classId 班级ID
   * @returns
   */
  getWeeklyDateList: async (classId: number) => {
    return await request.get({
      url: `/school/weekly-plan/week-date-list?classId=${classId}`
    })
  },
  // 获得周计划每日内容列表
  getWeeklyPlanDailyListByPlanId: async (planId) => {
    return await request.get({
      url: `/school/weekly-plan/weekly-plan-daily/list-by-plan-id?planId=` + planId
    })
  },
  //获得周计划反馈
  getWeeklyPlanFeedback: async (id) => {
    return await request.get({
      url: `/school/weekly-plan-feedback/get?id=` + id
    })
  },
  // 创建周计划反馈
  createWeeklyPlanFeedback: async (data: WeeklyPlanFeedbackVO) => {
    return await request.post({ url: `/school/weekly-plan-feedback/create`, data })
  },
  // 更新周计划反馈
  updateWeeklyPlanFeedback: async (data: WeeklyPlanFeedbackVO) => {
    return await request.put({ url: `/school/weekly-plan-feedback/update`, data })
  },
  // 删除周计划反馈
  deleteWeeklyPlanFeedback: async (id: number) => {
    return await request.delete({ url: `/school/weekly-plan-feedback/delete?id=` + id })
  },
  // 获得周计划反馈分页
  getWeeklyPlanFeedbackPage: async (params: any) => {
    return await request.get({ url: `/school/weekly-plan-feedback/page`, params })
  },
}
